// JS机制 ：在代码解析的时候会先预解析一遍所有js代码
/**
 * 预解析
 * 1.找到所有 var 关键字声明的变量进行提升到最前面
 * 2.找到所有 funciton 关键声明的函数提升到最前面
 */

// 调用函数
foo()
// 函数声明
function foo(){
    console.log('声明之前即将被调用...')
}
/**
 * 函数提升
 * 1.提升到当前作用域最前面
 * 2.只提升声明，不提升调用
 * 3.函数表达式不存在提升的现象
 * 4.函数提升能够使函数的声明调用更灵活
 */


// 不存在提升现象
bar()
//  函数表达式，匿名函数
var bar = function (){
    console.log('函数表达式不存在提升现象...')
}